$().ready( function() {
    
    jQuery.validator.addMethod("dateITA", function(value, element) {
        var check = false;
        var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
        if( re.test(value)){
            var adata = value.split('/');
            var gg = parseInt(adata[0],10);
            var mm = parseInt(adata[1],10);
            var aaaa = parseInt(adata[2],10);
            var xdata = new Date(aaaa,mm-1,gg);
            if ( ( xdata.getFullYear() == aaaa ) 
                && ( xdata.getMonth () == mm - 1 ) 
                && ( xdata.getDate() == gg ) )
                check = true;
            else
                check = false;
        } else
            check = false;
        return this.optional(element) || check;
    }
    );
    
    
    //    jQuery.validator.addMethod( "validEmployeeId", function(value) {
    //        if(value == ''){
    //            return false;
    //        }       
    //        return true;
    //    }, 'Seleccione un Empleado');
    
    jQuery.validator.addMethod( "validEmployeeCost", function(value) {
        if(value == '' || isNaN(value)){
            return false;
        }       
        return true;
    }, 'Ingrese un valor numérico');
    
    jQuery.validator.addMethod( "validExpenseDescription", function(value) {
        if(value == ''){
            return false;
        }       
        return true;
    }, 'Ingrese una descripción');
    
    jQuery.validator.addMethod( "validDateFrom", function(value) {
        //tomo las horas y los minutos
        var hora_inicio = $('#TheaterStartHour').val();
        var hora_fin = $('#TheaterFinishHour').val();
        var minuto_inicio = $('#TheaterStartMinute').val();
        var minuto_fin = $('#TheaterFinishMinute').val();
        
        if(minuto_inicio < 10){
            minuto_inicio = '0'+minuto_inicio;
        }
        if(minuto_fin < 10){
            minuto_fin = '0'+minuto_fin;
        }
        
        var inicio = hora_inicio+''+minuto_inicio;
        var fin = hora_fin+''+minuto_fin;
        
        if(parseFloat(inicio) >= parseFloat(fin)){
            return false;
        }       
        return true;
    });
    
    jQuery.validator.addMethod( "validExpenseCost", function(value) {
        if(value == '' || isNaN(value)){
            return false;
        }       
        return true;
    }, 'Ingrese un valor numérico');

    $("#TheaterAddForm").validate( {
        rules: {
            "data[Theater][name]": {
                required: true,
                rangelength: [3,150]
            },
            "data[Theater][address]": {
                required: true,
                rangelength: [3,100]
            },
            "data[Theater][ticket_price]": {
                required: true,
                number: true
            },
            "data[Theater][ticket_sales]": {
                required: true,
                number: true
            },
            "data[Theater][date_from]": {
                required: true,
                dateITA: true,
                validDateFrom: true
            }
        },
        messages: {
            "data[Theater][name]": {
                required: "<?php __('Ingrese el nombre') ?>",
                rangelength: "<?php __('Ingrese entre 3 y 150 caracteres') ?>"
            },
            "data[Theater][address]": {
                required: "<?php __('Ingrese la dirección') ?>",
                rangelength: "<?php __('Ingrese entre 3 y 100 caracteres') ?>"
            },
            "data[Theater][ticket_sales]": {
                required: "<?php __('Ingrese la cantidad') ?>",
                number: "<?php __('Ingrese solo números') ?>"
            },
            "data[Theater][ticket_price]": {
                required: "<?php __('Ingrese el precio de las entradas') ?>",
                number: "<?php __('Ingrese solo números') ?>"
            },
            "data[Theater][date_from]": {
                required: "<?php __('Ingrese la fecha de inicio') ?>",
                dateITA: "<?php __('Ingrese una fecha válida') ?>",
                validDateFrom: "<?php __('El horario de fin debe ser mayor que el de inicio') ?>"
            }
        }

    } );
} );